package response

// GpuFaultStatisticsResponse gpu数/故障数响应体
type GpuFaultStatisticsResponse struct {
	TotalGpus       int `json:"totalGpus"`
	TotalFaultyGpus int `json:"totalFaultyGpus"`
	//IDCStatistics   []IDCStatistics `json:"idcStatistics"`
}

type IDCStatistics struct {
	IDCName    string `json:"idcName"`
	GPUs       int    `json:"gpus"`
	FaultyGpus int    `json:"faultyGpus"`
}

// OverviewResponse 总览响应体
type OverviewResponse struct {
	IdcCount       int     `json:"idcCount"`
	GpuCount       int     `json:"gpuCount"`
	GpuUtilization float64 `json:"gpuUtilization"`
	UserCount      int     `json:"userCount"`
	SupplierCount  int     `json:"supplierCount"`
}

// GPUTop5StatisticsResponse 表示整体的GPU统计信息响应体
type GPUTop5StatisticsResponse struct {
	GPUModels []GPUModelCount `json:"gpuModels"`
}

// TopModelDistributionResponse top机型分布-idc响应体
type TopModelDistributionResponse struct {
	IDCName   string          `json:"idcName"`
	GPUModels []GPUModelCount `json:"gpuModels"`
}

// IDCPreviewResponse idc预览响应体
type IDCPreviewResponse struct {
	NodeCount          int     `json:"nodeCount"`
	GPUTotal           int     `json:"gpuTotal"`
	GPURented          int     `json:"gpuRented"`
	GPUIdle            int     `json:"gpuIdle"`
	GPUUtilizationRate float64 `json:"gpuUtilizationRate"` // 使用下划线以匹配JSON
	GPUFailureRate     float64 `json:"gpuFailureRate"`
	SupplierCount      int     `json:"supplierCount"`
}

// GpuDistributionResponse gpu租用型号分布
type GpuDistributionResponse struct {
	IDCs map[string]map[string]int `json:"-"` // 使用tag "-" 避免直接序列化这个字段，因为它是顶层结构
}

// GPURateStatisticsResponse  gpu租用率响应
type GPURateStatisticsResponse struct {
	UnRentalRate float64 `json:"unRentalRate"` // 未出租率
	RentalRate   float64 `json:"rentalRate"`   // 出租率
	UsageRate    float64 `json:"usageRate"`    // 使用率
}

// SupplierStatisticsResponse 供应商统计响应
type OverViewSupplierStatisticsResponse struct {
	TotalSuppliers     int        `json:"totalSuppliers"`
	ResidedSuppliers   CountRatio `json:"residedSuppliers"`
	UnResidedSuppliers CountRatio `json:"unResidedSuppliers"`
}

// OperationTrendResponse 用户数、订单数、GPU租用数历史趋势响应
type OperationTrendResponse struct {
	Series TimeSeriesResponse `json:"-"`
}
